<?php

class Visualizador extends TPage {
  public function  onLoad($param) {
    parent::onLoad($param);

    try {
      $argCrypt = $this->Request["a"];
      $textoDesencriptado = Criptografia::desencriptar($argCrypt);

      if(!Utilidades::isNullOrEmpty($textoDesencriptado)) {
        $arr = json_decode($textoDesencriptado);
        //obtiene los datos
        $idRegistro = $arr->IdRegistro;
        $entidad = $arr->Entidad;
        $idArchivo = $arr->IdArchivo;
        $nombreArchivo = $arr->NombreArchivo;
        $contentType = $arr->ContentType;
        $descargable = $arr->Descargable;

        //construye ruta del archivo en el repositorio
        $archivo = Archivo::RUTA_REPOSITORIO."/$entidad/reg$idRegistro/$idArchivo/$nombreArchivo";

        //para realizar descarga
        if (file_exists($archivo)) {
            header("Content-Description: File Transfer");
            header("Content-Type: $contentType");
            if($descargable == "1") { header("Content-Disposition: attachment; filename=".basename($archivo)); }
            header("Content-Transfer-Encoding: binary");
            header("Expires: 0");
            header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
            header("Pragma: public");
            header("Content-Length: ".filesize($archivo));
            ob_clean();
            flush();
            readfile($archivo);
            exit;
        }
      } else {
        exit;
      }
    } catch (Exception $e) {
      exit;
    }
  }
}

?>
